package com.foftact.stockpereport.service;

import com.foftact.stockpereport.StockPEReport;

import java.util.List;

/**
 * 股票财务分析报告服务接口
 */
public interface StockPEReportService {
    /**
     * 从网页抓取并保存股票财务分析报告数据
     * @return 保存的数据数量
     */
    int fetchAndSaveStockPEReportData();

    /**
     * 保存单条股票财务分析报告数据
     * @param stockPEReport 股票财务分析报告数据对象
     * @return 保存的行数
     */
    int saveStockPEReport(StockPEReport stockPEReport);

    /**
     * 批量保存股票财务分析报告数据
     * @param stockPEReportList 股票财务分析报告数据列表
     * @return 保存的行数
     */
    int batchSaveStockPEReport(List<StockPEReport> stockPEReportList);

    /**
     * 根据证券代码获取股票财务分析报告数据
     * @param securityCode 证券代码
     * @return 股票财务分析报告数据对象
     */
    StockPEReport getStockPEReportBySecurityCode(String securityCode);

    /**
     * 获取所有股票财务分析报告数据
     * @return 股票财务分析报告数据列表
     */
    List<StockPEReport> getAllStockPEReports();

    /**
     * 删除超过指定天数的旧数据
     * @param days 天数
     * @return 删除的行数
     */
    int deleteOldData(int days);
    
    /**
     * 根据证券代码获取近20个季度的财务分析报告数据
     * @param securityCode 证券代码
     * @return 近20个季度的财务分析报告数据列表
     */
    List<StockPEReport> getRecent20QuartersByCode(String securityCode);
    
    /**
     * 处理近20个季度数据的更新或插入
     * @param securityCode 证券代码
     * @param securityName 证券名称
     * @return 处理的记录数
     */
    int process20QuartersData(String securityCode, String securityName);
}